package ink.tiptop.service;

import ink.tiptop.persist.domain.entity.ZjfModuleLocalEntity;
import ink.tiptop.dto.req.local.module.*;
import ink.tiptop.common.domain.rsp.Response;

import java.util.List;
import java.util.Observer;

/**
 * 本地模块结构视图(ZjfModuleLocalViewEntity)表服务接口
 *
 * @author makejava
 * @since 2020-06-21 20:39:55
 */
public interface ZjfModuleLocalService extends Observer {
    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    ZjfModuleLocalEntity queryById(Integer id);

    /**
     * 查询多条数据
     *
     * @return 对象列表
     */
    List<ZjfModuleLocalEntity> queryAllByUser(String user);

    /**
     * 新增数据
     *
     * @param zjfModuleLocalViewEntity 实例对象
     * @return 实例对象
     */
    ZjfModuleLocalEntity insert(ZjfModuleLocalEntity zjfModuleLocalViewEntity);


    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(String id);

    /**
     * 条件查询
     *
     * @param request 实例对象
     * @return 是否成功
     */
    Response list(QueryZjfModuleLocalRequest request);

    /**
     * 修改数据
     *
     * @param request 实例对象
     * @return 实例对象
     */
    Response update(UpdateZjfModuleLocalRequest request);

    /**
     * 删除数据
     *
     * @param request 实例对象
     * @return 实例对象
     */
    Response delete(DeleteZjfModuleLocalRequest request);

    /**
     * 添加数据
     *
     * @param request 实例对象
     * @return Response 响应数据
     */
    Response add(AddZjfModuleLocalRequest request);

    Response scan(ScanZjfModuleLocalRequest request);

    List<ZjfModuleLocalEntity> queryAllByEntity(ZjfModuleLocalEntity moduleLocalEntity);

    List<ZjfModuleLocalEntity> listByIds(List<Integer> id);
}